/*
 * Copyright (c) 2023 HiSilicon (Shanghai) Technologies CO., LIMITED.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

#ifndef __SLE_PACKAGE_H
#define __SLE_PACKAGE_H

#define PACKAGE_LENGTH (230U)
#define PACKAGE_DATA_LENGTH (PACKAGE_LENGTH - sizeof(sle_package_t))

typedef struct {
    long        mtype;
    size_t      index;
    void        *peri;
    size_t      data_len;
    uint8_t     data[0];
} sle_package_t;

typedef struct {
    size_t index_start;
    size_t index_stop;
    struct timespec *time_start;
    struct timespec *time_stop;
    size_t total_byte;
} sle_transfer_stat_t;
#endif
